package com.gxa.mapper;

import com.gxa.pojo.Dept;
import com.gxa.pojo.Emp;
import com.gxa.pojo.Params_Son;
import com.gxa.pojo.zk.NewEmp;
import org.apache.ibatis.annotations.Param;

import java.sql.SQLException;
import java.util.List;

public interface EmpMapper {

    List<NewEmp> queryAll(Integer param1, Integer param2);

    List<NewEmp> queryWorking(Integer EMP_INDUCTION, Integer param1, Integer param2);

    int addEmp(Emp emp) throws SQLException;

    int editEmp(Emp emp) throws SQLException;

    int setWorkingToDeparture(Integer param1, String param2) throws SQLException;

    int setDepartureToBlackList(Integer param1, String param2) throws SQLException;

    int setBlackListToDeparture(Integer param1, String param2) throws SQLException;

    List<NewEmp> queryEmpDetails(String emp_number);

    List<NewEmp> fuzzyQuery(@Param("keyWord") String keyWord, @Param("page") Integer page, @Param("limit") Integer limit, int sta);

    List<Params_Son> queryEdu(Integer param_id);

    List<Params_Son> queryMaritalSta(Integer param_id);

    List<Params_Son> queryBloodType(Integer param_id);

    List<Params_Son> queryNation(Integer param_id);

    List<Params_Son> queryCategory(Integer param_id);

    List<Params_Son> queryJob(Integer param_id);

    List<Params_Son> queryTitle(Integer param_id);

    List<Dept> queryDept();

    Integer countAll(Integer EMP_EMPLOYED);

    Integer countWorking(int empInduction);

    List<NewEmp> queryDeparture(int empQuit, Integer param1, Integer param2);

    Integer countDeparture(int empQuit);

    List<NewEmp> queryBlackList(int empQuitBlacklist, Integer param1, Integer param2);

    Integer countBlackList(int empQuitBlacklist);

    Integer countfuzzyQuery(@Param("keyWord") String keyWord, int sta);

    List<NewEmp> fuzzyQueryWorking(@Param("keyWord") String keyWord, @Param("page") Integer page, @Param("limit") Integer limit, int sta);

    List<NewEmp> fuzzyQueryDep(@Param("keyWord") String keyWord, @Param("page") Integer page, @Param("limit") Integer limit, int sta);

    List<NewEmp> fuzzyQueryBlackList(@Param("keyWord") String keyWord, @Param("page") Integer page, @Param("limit") Integer limit, int sta);

    Integer countfuzzyQueryWorking(@Param("keyWord") String keyWord, int sta);

    Integer countfuzzyQueryDep(@Param("keyWord") String keyWord, int sta);

    Integer countfuzzyQueryBlackList(@Param("keyWord") String keyWord, int sta);

    List<Emp> queryEmpNum();
}
